Android 的安全机制有哪些
Android 的安全机制有:
访问限制:访问限制对于任何操作系统的安全性而言都是核心要素。在 Android中,任何程序都没有权限来执行可能有害于操作系统的操作。这些操作包括读/写用户的隐私数据(例如联系方式或 E-mail)、读/写其他应用程序的文件等。该结构同样避免了可能会运行有害的或是影响到用户的程序。据此,保证了用户一些“敏感”数据不被某些未经授权的程序所困扰。
应用程序签名:所有的Android应用程序(.apk文件)必须通过一个证书的签名,此证书的密钥必须被开发者所掌握,这个证书的标识是应用程序的作者。这个证书不需要通过证书组织的签署,Android应用程序对于使用自签署的证书是完全允许的。
DVM防护:Android采用了进程隔离策略来保障应用软件及其数据文件的完整性和机密性。
权限命名机制:一个权限主要包含3个方面的信息:权限的名称、属于的权限组、保护级别。一个权限组是指把权限按照功能分成的不同集合。每一个权限组包含若干具体权限,例如,在COST_MONEY组中包含android.permission.SEND_SMS、android.permission.CALL_PHONE等和费用相关的权限。每个权限通过Protection Level来标识保护级别,如Normal、Dangerous、Signature、Signatureorsystem。不同的保护级别代表了程序要使用此权限时的认证方式。Normal 的权限只要申请了就可以使用;Dangerous 的权限在安装时需要用户确认才可以使用;Signature和Signatureorsystem的权限需要使用者的APP和系统使用同一个数字证书。Package的权限信息主要通过在AndroidManifest.xml中通过一些标签来指定。
数据安全机制UID:安装在Android手机中的每个程序都会被分配给一个属于自己的统一的Linux用户ID,并且为它创建一个Sandbox以防止影响其他程序。在程序安装到手机中时被分配用户ID,并且在这个设备中保持它的永久性。
“沙箱”机制:在Android系统中,每个APP和系统进程都被分配唯一并且固定的User ID,这个UID与内核层进程的UID对应。每个APP在各自独立的DVM中运行,拥有独立的地址空间和资源。运行于DVM中的进程必须依托内核层Linux进程而存在,因此,Android使用DVM和Linux的文件访问控制来实现沙箱机制,任何应用程序如果想访问系统资源或者其他应用程序的资源必须在自己的manifest文件中进行声明权限或者共享UID。